wm geom .konsola 653x567+348+3; wm geom . 200x200+30+369; wm geom .output 309x288+27+51; source eagle_lib.tcl; wm withdraw .; wm withdraw .output; ## System.Net.Sockets # + http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx # # ... # Socket - czy mozna ich uzywac z prot UDP ? TAK!! # + Bind() ustala lokalny adr/nr protu, Connect() zdalny... # + do tego przykladu uruchomic zajecia/sik/udp/udp_ser.tcl # + mozna sie przekonac o mozliwosciach klasy Socket... # e {object import System.Net.Sockets} e { set h1 [object create -alias -parametertypes {AddressFamily SocketType ProtocolType} \ Socket InterNetwork Dgram Udp ]} #% System#Net#Sockets#Socket#285 # + tworzymy socket Dgram + Udp # + eagle: wybieramy 1 z 3 konstruktorow przy pomocy -parametertypes ! e { set any [object invoke System.Net.IPAddress Any] set ep [object create -alias System.Net.IPEndPoint $any 10002] $ep ToString } #% 0.0.0.0:10002 e {$h1 Bind $ep} # + ustalamy lokalny nr portu # + eagle: nie mozna podac stalej Any (?) e {$h1 Connect "localhost" 10000} # + ustalamy zdalny adres i nr portu # + tu sie NIE tworzy zadnego polaczenia, oczywiscie !!! (UDP) e {$h1 Connected} #% True #% False e {$h1 Blocking} #% True e {set b1 [object create -alias {Byte[]} 5 ]} #% System#Byte[]#317 e { $b1 Set 0 65 $b1 Set 1 66 $b1 Set 2 67 $b1 Set 3 68 $b1 Set 4 69 } #% e {$h1 Send $b1} #% 5 # + ok !!! # dlaczego nie moge uzywac stalej "Any", a "InterNetwork" moge ? e {object invoke System.Net.Sockets.AddressFamily InterNetwork} #% InterNetwork e {object invoke AddressFamily InterNetwork} #% InterNetwork # + AddressFamily to enumeracja e {object invoke System.Net.IPAddress Any} #% System#Net#IPAddress#291 # + IPAddress to klasa, a met. Any zwraca ob. ?? e {object memb SocketType} e {object memb ProtocolType} ii Socket ii \$h1 # ... exit